#ifndef __SQLITEDATABASE_H__
#define __SQLITEDATABASE_H__
#include <sqlite3.h>
#include <iostream>
#include "stdDataBase.h"

using namespace std;

class SQliteDataBase : public StdDataBase
{
public:
    static SQliteDataBase& getInstance() 
    {
        static SQliteDataBase instance;  // 静态局部变量，确保全局唯一
        return instance;
    }
    

    /* 连接数据库 */
    bool connectDB(const string & connStr) override;

    /* 执行sql语句(exec) */
    bool executeSql(const string & sql) override;

    /* 制定Sql查询语句（select）*/
    struct QueryResult querySql(const string & sql) override;

    /* 关闭数据库连接 */
    void close();

    // 删除拷贝构造函数和赋值运算符，禁止拷贝
    SQliteDataBase(const SQliteDataBase&) = delete;
    SQliteDataBase& operator=(const SQliteDataBase&) = delete;

private:
    SQliteDataBase();
    ~SQliteDataBase();
    sqlite3 * m_Db;
};





#endif